Methods of making written text unreadable by those to whom it is not intended are at least 2000 years old. This is accomplished by ciphers. Their objective is to transform the message such that it can be read only with the help of a key. The original message is known as plaintext, the transformed message is known as ciphertext. A new era of cryptography began with the computer age. Software and/or digital hardware can be employed to perform encrypting and decrypting operations very rapidly.
One way to classify encryption methods (ciphers) is into private (symmetric) and public (asymmetric). In case of a private cipher the message is decrypted with the same key it was encrypted. In case of public ciphers the encryption key cannot decrypt the message. Therefore it needs not be kept secret and can be made public. Another key, the private key must be used to decrypt the message. Another classification is into block ciphers and stream ciphers. A block cipher transforms blocks of fixed size one block at a time into another block, typically of the same size such that:C=f(P, K) where C is the encrypted block, P is the original block, K is the key, and f is the encrypting transformation. Presumably the person who does not know the key K will not be able to recover P from C. An example of such a cipher is DES. (Bruce Schneier: Applied Cryptography, John Willey & Sons, 1994, pp. 219-241.) A stream cipher generates a very long stream of pseudo-random numbers. The message is encrypted with this stream. If the message consists of a sequence of 8-bit ASCII codes such that each character takes one byte of computer memory then each byte is transformed by one of the pseudo-random numbers, typically by performing exclusive or operation. An example: if{Pi}=P1, P2, P3, . . . Pi, . . . Pn is the original message i.e. a sequence of characters (bytes){Ri}=R1, R2, R3, . . . Ri, . . . Rn is the stream of pseudo-random numbers, then{Ci}=P1 xor R1, P2 xor R2, P3 xor R3, . . . Pi xor Ri, . . . Pn xor Rn is the encrypted message. (‘xor’ signifies the exclusive or operation.)
There are several methods for generating pseudo-random numbers. The three most common are linear congruential generators, linear feedback shift register (LFSR) generators, and lagged Fibonacci generators (LFG). None of these methods alone are suitable for encryption purposes because the cryptanalyst can readily decipher them. In order to be usable for encryption these methods have to be modified. Various combinations of shift register generators are most often used to generate stream ciphers.
Encryption methods and devices are applicable in all situations where data are stored or transmitted. With the emergence and growth of Internet there is an ever increasing need to protect information from unauthorized interception. Encryption is an important class of methods for accomplishing computer and network security and for guarding sensitive information.